/**
 * BackTop 组件的主题配置
 * 
 * 基于企业级设计规范 (BackTop.json) 的完整配置
 * 返回顶部组件样式定义
 */

import type { ComponentToken } from 'antd/es/back-top/style';

// ========== 设计 Token 常量 ==========

/**
 * 层级相关 Token
 */
const Z_INDEX_TOKENS = {
  popup: 10,
} as const;

/**
 * BackTop 完整主题配置
 * 
 * 根据设计规范文件 BackTop.json 定义的返回顶部组件样式
 * 
 * @example
 * ```tsx
 * <ConfigProvider theme={{ components: { BackTop: backTopThemeConfig } }}>
 *   <BackTop />
 * </ConfigProvider>
 * ```
 */
export const backTopThemeConfig: Partial<ComponentToken> = {
  // ========== 层级配置 ==========
  zIndexPopup: Z_INDEX_TOKENS.popup,
};

/**
 * 获取返回顶部主题配置
 * 
 * @param customConfig 自定义配置（可选）
 * @returns 合并后的主题配置
 * 
 * @example
 * ```tsx
 * const myBackTopTheme = getBackTopTheme({
 *   zIndexPopup: 100,
 * });
 * 
 * <ConfigProvider theme={{ components: { BackTop: myBackTopTheme } }}>
 *   <BackTop />
 * </ConfigProvider>
 * ```
 */
export const getBackTopTheme = (
  customConfig?: Partial<ComponentToken>
): Partial<ComponentToken> => {
  return {
    ...backTopThemeConfig,
    ...customConfig,
  };
};

/**
 * 导出 BackTop 组件的 Token 类型
 */
export type { ComponentToken as BackTopComponentToken } from 'antd/es/back-top/style';

